package com.lehecai.core.lottery.content;

import com.lehecai.core.exception.lottery.content.UnmatchedElementAttributeClassException;
import com.lehecai.core.exception.lottery.content.UnsupportedElementAttributeException;

/**
 * User: sunshow
 */
public interface IElementAttributeParser {

    /**
     * 根据彩种和玩法将attribute解析成对象
     * @param attribute 原始属性字符串，例如：1$70
     * @return 解析后的对象
     */
    public IElementAttribute parse(String attribute) throws UnsupportedElementAttributeException;

    /**
     * 根据彩种和玩法将attribute解析成指定的对象
     * @param attribute 原始属性字符串，例如：1$70
     * @param clazz class
     * @param <T> 实际的属性类
     * @return 解析后的对象
     */
    public <T extends IElementAttribute> T parse(String attribute, Class<T> clazz) throws UnsupportedElementAttributeException, UnmatchedElementAttributeClassException;
}
